package cn.oms.billing.provider.dao.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author AllenChen曾晨
 * @since 2022-04-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bill_record")
@ApiModel(value="BillRecord对象", description="")
public class BillRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "账单ID（新增生成）（账单记录ID）")
    @TableField("BILL_RECORD_ID")
    private String billRecordId;

    @ApiModelProperty(value = "付款ID（对应付款交易记录表）（付款生成插入）")
    @TableField("PAY_ID")
    private String payId;

    @ApiModelProperty(value = "账单流水ID（对应账单流水表）（点击去付费生成）")
    @TableField("JOURNAL_ACCOUNT_ID")
    private String journalAccountId;

    @ApiModelProperty(value = "患者ID（对应基本信息表）")
    @TableField("PATIENT_ID")
    private String patientId;

    @ApiModelProperty(value = "入院号（对应入院登记表）")
    @TableField("ADMISSION_NO")
    private String admissionNo;

    @ApiModelProperty(value = "处方号ID（对应处方表）")
    @TableField("PRESCRIPTION_NO")
    private String prescriptionNo;

    @ApiModelProperty(value = "医嘱号ID（对应医嘱表）")
    @TableField("MEDICAL_ORDER_NO")
    private String medicalOrderNo;

    @ApiModelProperty(value = "项目CODE（对应药品知识库）(药品表、产品表、检验表)")
    @TableField("ITEM_CODE")
    private String itemCode;

    @ApiModelProperty(value = "项目名称（全名）（对应药品知识库）")
    @TableField("ITEM_NAME")
    private String itemName;

    @ApiModelProperty(value = "项目单价金额（对应药品知识库）")
    @TableField("ITEM_PRICE")
    private BigDecimal itemPrice;

    @ApiModelProperty(value = "项目单价单位CODE(对应单位表)")
    @TableField("ITEM_PRICE_UNIT_CODE")
    private String itemPriceUnitCode;

    @ApiModelProperty(value = "项目单价单位（对应药品知识库）")
    @TableField("ITEM_PRICE_UNIT")
    private String itemPriceUnit;

    @ApiModelProperty(value = "项目数量")
    @TableField("ITEM_NUM")
    private Integer itemNum;

    @ApiModelProperty(value = "项目数量单位CODE(对应单位表)")
    @TableField("ITEM_NUM_UNIT_CODE")
    private String itemNumUnitCode;

    @ApiModelProperty(value = "项目数量单位名称（对应单位表CODE）")
    @TableField("ITEM_NUM_UNIT_NAME")
    private String itemNumUnitName;

    @ApiModelProperty(value = "产品总计金额")
    @TableField("ITEM_TOTAL_PRICE")
    private BigDecimal itemTotalPrice;

    @ApiModelProperty(value = "是否属于医保产品（0非 1是）（对应药品知识库）")
    @TableField("ITEM_IN_MBF_FLAG")
    private Integer itemInMbfFlag;

    @ApiModelProperty(value = "医保折扣率")
    @TableField("MBF_DISCOUNT")
    private BigDecimal mbfDiscount;

    @ApiModelProperty(value = "医保扣减金额")
    @TableField("MBF_DISCOUNT_PRICE")
    private BigDecimal mbfDiscountPrice;

    @ApiModelProperty(value = "医保扣减金额单位CODE(对应单位表)")
    @TableField("MBF_DISCOUNT_PRICE_UNIT_CODE")
    private String mbfDiscountPriceUnitCode;

    @ApiModelProperty(value = "医保扣减金额单位名称（元）")
    @TableField("MBF_DISCOUNT_PRICE_UNIT_NAME")
    private String mbfDiscountPriceUnitName;

    @ApiModelProperty(value = "产品折扣率")
    @TableField("ITEM_DISCOUNT")
    private BigDecimal itemDiscount;

    @ApiModelProperty(value = "产品折扣金额")
    @TableField("ITEM_DISCOUNT_PRICE")
    private BigDecimal itemDiscountPrice;

    @ApiModelProperty(value = "产品折扣金额单位CODE(对应单位表)")
    @TableField("ITEM_DISCOUNT_PRICE_UNIT_CODE")
    private String itemDiscountPriceUnitCode;

    @ApiModelProperty(value = "产品折扣金额单位名称（元）")
    @TableField("ITEM_DISCOUNT_PRICE_UNIT_NAME")
    private String itemDiscountPriceUnitName;

    @ApiModelProperty(value = "最终净金额（元）")
    @TableField("ITEM_NET_AMOUNT_PRICE")
    private BigDecimal itemNetAmountPrice;

    @ApiModelProperty(value = "最终净金额单位CODE(对应单位表)")
    @TableField("ITEM_NET_AMOUNT_PRICE_UNIT_CODE")
    private String itemNetAmountPriceUnitCode;

    @ApiModelProperty(value = "最终净金额单位名称（元）")
    @TableField("ITEM_NET_AMOUNT_PRICE_UNIT_NAME")
    private String itemNetAmountPriceUnitName;

    @ApiModelProperty(value = "账单费用类型CODE（对应费用类型字典）")
    @TableField("BILL_FEE_TYPE_CODE")
    private String billFeeTypeCode;

    @ApiModelProperty(value = "账单费用类型名称（对应费用类型字典）")
    @TableField("BILL_FEE_TYPE_NAME")
    private String billFeeTypeName;

    @ApiModelProperty(value = "账单开立人CODE")
    @TableField("CREATE_MAN_ID")
    private String createManId;

    @ApiModelProperty(value = "账单开立人姓名")
    @TableField("CREATE_MAN_NAME")
    private String createManName;

    @ApiModelProperty(value = "账单开立人角色")
    @TableField("CREATE_MAN_ROLE")
    private String createManRole;

    @ApiModelProperty(value = "开立人备注（返回前端给医生查看显示的备注）")
    @TableField("CREATE_MAN_REMARK")
    private String createManRemark;

    @ApiModelProperty(value = "科室CODE")
    @TableField("DEPARTMENT_CODE")
    private String departmentCode;

    @ApiModelProperty(value = "科室名称")
    @TableField("DEPARTMENT_NAME")
    private String departmentName;

    @ApiModelProperty(value = "绑定标记（0未绑定 1已绑定）（用于判断当前账单是否已在缴费流程）")
    @TableField("BINDING_FLAG")
    private Integer bindingFlag;

    @ApiModelProperty(value = "付费状态标记（0未付费 1已付费）")
    @TableField("BILL_PAY_FLAG")
    private Integer billPayFlag;

    @ApiModelProperty(value = "打印记录标记（0未打印 1已打印）")
    @TableField("BILL_PRINT_FLAG")
    private Integer billPrintFlag;

    @ApiModelProperty(value = "备注（返回前端患者查看的备注）")
    @TableField("OTHER_REMARK")
    private String otherRemark;

    @ApiModelProperty(value = "添加时间")
    @TableField("CREATE_TIME")
    private LocalDate createTime;

    @ApiModelProperty(value = "删除标记")
    @TableField("DEL_FLAG")
    private Integer delFlag;


}
